---
title: 'Attio'
sidebarTitle: 'Attio'
description: 'Access the Attio API in 2 minutes 💨'
---

<Tabs>
  <Tab title="🚀 Quickstart">
    <Steps>
      <Step title="Create an integration">
        In Nango ([free signup](https://app.nango.dev)), go to [Integrations](https://app.nango.dev/dev/integrations) -> _Configure New Integration_ -> _Attio_.
      </Step>
      <Step title="Authorize Attio">
        Go to [Connections](https://app.nango.dev/dev/connections) -> _Add Test Connection_ -> _Authorize_, then log in to Attio. Later, you'll let your users do the same directly from your app.
      </Step>
      <Step title="Call the Attio API">
        Let's make your first request to the Attio API (fetch a list of people). Replace the placeholders below with your [secret key](https://app.nango.dev/dev/environment-settings), [integration ID](https://app.nango.dev/dev/integrations), and [connection ID](https://app.nango.dev/dev/connections):
        <Tabs>
            <Tab title="cURL">
                ```bash
                curl -X POST  "https://api.nango.dev/proxy/v2/objects/people/records/query" \
                  -H "Authorization: Bearer <NANGO-SECRET-KEY>" \
                  -H "Provider-Config-Key: <INTEGRATION-ID>" \
                  -H "Connection-Id: <CONNECTION-ID>" \
                  -H "Accept: application/json" \
                  -H "Content-Type: application/json" \
                  -d '{"limit": 10}'
                ```

            </Tab>

            <Tab title="Node">

            Install Nango's backend SDK with `npm i @nangohq/node`. Then run:

            ```typescript
            import { Nango } from '@nangohq/node';

            const nango = new Nango({ secretKey: '<NANGO-SECRET-KEY>' });

            const res = await nango.post({
                endpoint: '/v2/objects/people/records/query',
                providerConfigKey: '<INTEGRATION-ID>',
                connectionId: '<CONNECTION-ID>',
                data: {
                  limit: 10
                }
              });
            console.log(JSON.stringify(res.data, 2, null));
            ```
            </Tab>

        </Tabs>

        Or fetch credentials dynamically via the [Node SDK](/reference/sdks/node#get-a-connection-with-credentials) or [API](/reference/api/connection/get).

      </Step>
    </Steps>

    ✅ You're connected! Check the [Logs](https://app.nango.dev/dev/logs) tab in Nango to inspect requests.

    <Tip>
    Next step: [Embed the auth flow](/getting-started/quickstart/embed-in-your-app) in your app to let your users connect their Attio accounts.
    </Tip>
  </Tab>
  <Tab title="🧑‍💻 OAuth app setup">
    <Steps>
      <Step title="Create an Attio Developer account">
        If you don't already have one, sign up for an [Attio Developer account](https://build.attio.com/).
      </Step>
      <Step title="Create a new app">
        1. Log in to your [Attio Developer account](https://build.attio.com/auth/login).
        2. From the left sidebar, click **+ New app** and enter a unique **name** for your app.
      </Step>
      <Step title="Configure OAuth settings">
        1. On your app's settings page, open the **OAuth** tab.
        2. Toggle **OAuth** on, and add `https://api.nango.dev/oauth/callback` as your **Redirect URIs**.
        3. Configure the appropriate [scopes](https://docs.attio.com/rest-api/how-to/authentication#scopes) your integration needs.
        4. Copy your **Client ID** and **Client Secret**, you'll need these when configuring your integration in Nango.
      </Step>
      <Step title="Publish your app">
        1. Navigate to the **App listing** tab and complete all the required fields.
        2. Click the **Publish app** button in the top-right corner. Attio's team will review your submission (typically within 48 hours). Once approved, your app will become **Public** and available to other users.
      </Step>
      <Step title="Next">
        Follow the [_Quickstart_](/getting-started/quickstart).
      </Step>
    </Steps>
    ## Common Scopes
    | Scope | Description |
    | --- | --- |
    | `object_configuration` | Access to object configuration data. |
    | `record_read` | Read access to records. |
    | `record_write` | Write access to records. |
    | `list_read` | Read access to lists. |
    | `list_write` | Write access to lists. |
  </Tab>
  <Tab title="🔗 Useful links">
    | Topic | Links | 
    | - | - | 
    | General | [Attio Website](https://attio.com/) |
    | | [Create an Attio Developer account](https://build.attio.com/) |
    | | [Create an Attio account](https://app.attio.com/welcome/sign-in) |
    | | [Attio Dashboard](https://app.attio.com/) |
    | Developer | [API documentation](https://developers.attio.com/reference) |
    | | [Authentication guide](https://docs.attio.com/rest-api/how-to/authentication) |
    | | [OAuth documentation](https://docs.attio.com/rest-api/how-to/authentication#oauth-2-0) |
    | | [Rate limits](https://docs.attio.com/rest-api/how-to/rate-limiting) |

    <Note>Contribute useful links by [editing this page](https://github.com/nangohq/nango/tree/master/docs/integrations/all/attio.mdx)</Note>
  </Tab>
  <Tab title="🚨 API gotchas">
    - Attio's API uses object-based endpoints where you specify the object type (e.g., people, companies) in the URL path.

    <Note>Contribute API gotchas by [editing this page](https://github.com/nangohq/nango/tree/master/docs/integrations/all/attio.mdx)</Note>
  </Tab>
</Tabs>

<Info>
    Questions? Join us in the [Slack community](https://nango.dev/slack).
</Info>
